//package abg.manage.controller.sys;
//
//import abg.core.common.security.Auth;
//import abg.core.common.util.DateKit;
//import abg.core.common.util.IdKit;
//import abg.core.domain.db.ZExcel;
//import abg.core.domain.sys.SRS;
//import abg.core.mybatis.mapper.ZExcelLink1Mapper;
//import abg.core.mybatis.mapper.ZExcelLink2Mapper;
//import abg.core.mybatis.mapper.ZExcelMapper;
//import jakarta.annotation.Resource;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.poi.ss.usermodel.*;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.RestController;
//import org.springframework.web.multipart.MultipartFile;
//
//import java.io.InputStream;
//import java.util.ArrayList;
//
//@Slf4j
//@RestController
//@RequestMapping("/manage/system/excel")
//public class ExcelC {
//    @Resource
//    private ZExcelMapper zExcelMapper;
//
//    @Resource
//    private ZExcelLink1Mapper zExcelLink1Mapper;
//
//    @Resource
//    private ZExcelLink2Mapper zExcelLink2Mapper;
//
//    @Auth(ignore = true)
//    @PostMapping("/uploadExcel")
//    public SRS<Object> uploadExcel(@RequestParam("file") MultipartFile file) {
//        long l1 = System.currentTimeMillis();
//        int rowCount = 0;
//        // 只处理第一张工作表
//        try {
//            InputStream inputStream = file.getInputStream();
//            Workbook workbook = WorkbookFactory.create(inputStream);
//            Sheet sheet = workbook.getSheetAt(0);
//            rowCount = sheet.getPhysicalNumberOfRows(); // 获取总行数
//            ArrayList<ZExcel> insertBatch = new ArrayList<>();
//
//            // 遍历行
//            for (int i = 1; i < rowCount; i++) {
//                Row row = sheet.getRow(i);
//                if (row != null) {
//                    String value0 = getStrValueByType(row.getCell(0));
//                    String value1 = getStrValueByType(row.getCell(1));
//                    String value2 = getStrValueByType(row.getCell(2));
//                    String value3 = getStrValueByType(row.getCell(3));
//                    String value4 = getStrValueByType(row.getCell(4));
//                    String value5 = getStrValueByType(row.getCell(5));
//                    String value6 = getStrValueByType(row.getCell(6));
//                    String value7 = getStrValueByType(row.getCell(7));
//                    String value8 = getStrValueByType(row.getCell(8));
//                    String value9 = getStrValueByType(row.getCell(9));
//                    String value10 = getStrValueByType(row.getCell(10));
//                    String value11 = getStrValueByType(row.getCell(11));
//                    String value12 = getStrValueByType(row.getCell(12));
//                    String value13 = getStrValueByType(row.getCell(13));
//
//                    //                    Thread.sleep(200);
//
//                    //                    Thread.sleep(200);
//
//                    //组装数据
//                    ZExcel zExcel = new ZExcel();
//                    zExcel.setId(IdKit.getId());
//                    zExcel.setA0(value0);
//                    zExcel.setA1(value1);
//                    zExcel.setA2(value2);
//                    zExcel.setA3(value3);
//                    zExcel.setA4(value4);
//                    zExcel.setA5(value5);
//                    zExcel.setA6(value6);
//                    zExcel.setA7(value7);
//                    zExcel.setA8(value8);
//                    zExcel.setA9(value9);
//                    zExcel.setA10(value10);
//                    zExcel.setA11(value11);
//                    zExcel.setA12(value12);
//                    zExcel.setA13(value13);
//
//                    insertBatch.add(zExcel);
//
//                    if (insertBatch.size() >= 1000 || (i + 1) >= rowCount) {
//                        int i1 = zExcelMapper.insertBatch(insertBatch);
//                        log.error("插入数据：{}条", i1);
//                        insertBatch = new ArrayList<>();
//                    }
//
//                }
//
//            }
//
//
//            //关闭流
//            workbook.close();
//            inputStream.close();
//
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//        long l2 = System.currentTimeMillis();
//
//        log.error("插入结束  {}条  耗时：{}秒", rowCount, (l2 - l1) / 1000);
//
//        return SRS.bySuccess();
//    }
//
//
//    private String getStrValueByType(Cell cell) {
//        String value = "";
//        CellType cellType1 = cell.getCellType();
//
//        switch (cellType1) {
//            case STRING -> value = cell.getStringCellValue();
//            case NUMERIC -> {
//                // 判断是否为日期类型
//                if (DateUtil.isCellDateFormatted(cell)) {
//                    value = DateKit.dateToStr(cell.getDateCellValue());
//                } else {
//                    value = String.valueOf(cell.getNumericCellValue());
//                }
//            }
//            case BOOLEAN -> value = String.valueOf(cell.getBooleanCellValue());
//            case FORMULA -> value = cell.getCellFormula();
//            default -> value = "";
//        }
//        return value;
//
//    }
//}
